<?php

Class VeiculoDAO{
 
    public function cadastrarVeiculo(Veiculo $veiculo) {
        
        try {

            //Banco de dados
            $conexao = new Conexao();
            $conn = $conexao->abrirConexao();
            
            //Codigo SQL
            $query = "
                INSERT INTO veiculo (id, id_condutor, id_proprietario, id_modelo, sistema_anti_furto,
                    ano_fabricacao, ano_modelo, combustivel, placa, chassi, valor,
                    foi_financiado, forma_utilizacao, ida_volta_trabalho, ida_volta_estudo,
                    estaciona_residencia, estaciona_trabalho, estaciona_escola,
                    nao_possui_estacionamento, periodo_manha, periodo_tarde, periodo_noite,
                    cep_circulacao, cep_pernoite, quilometragem_atual, possui_adaptacao_gas,
                    valor_adaptacao_gas, possui_blindagem, valor_blindagem) 
                VALUES (NULL, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
                    ?, ?, ?, ?, ?, ?, 0, ?, 0, ?);
            ";
            
            //converter datas
            //$data = new Utilitarios();

            //Cadastro Usuario
            $stmt = $conn->prepare($query);
            $stmt->bindValue(1, utf8_decode($veiculo->getCodigoCondutor()));
            $stmt->bindValue(2, utf8_decode($veiculo->getCodigoPrietario()));
            $stmt->bindValue(3, utf8_decode($veiculo->getCodigoModelo()));
            $stmt->bindValue(4, utf8_decode($veiculo->getAntiFurto()));
            $stmt->bindValue(5, utf8_decode($veiculo->getAnoFabricacao()));
            $stmt->bindValue(6, utf8_decode($veiculo->getAnoModelo()));
            $stmt->bindValue(7, utf8_decode($veiculo->getCombustivel()));
            $stmt->bindValue(8, utf8_decode($veiculo->getPlaca()));
            $stmt->bindValue(9, utf8_decode($veiculo->getChassi()));
            $stmt->bindValue(10, utf8_decode($veiculo->getValor()));
            $stmt->bindValue(11, utf8_decode($veiculo->getFoiFinanciado()));
            $stmt->bindValue(12, utf8_decode($veiculo->getFormaUtilizacao()));
            $stmt->bindValue(13, utf8_decode($veiculo->getIdaVoltaTrabalho()));
            $stmt->bindValue(14, utf8_decode($veiculo->getIdaVoltaEstudo()));
            $stmt->bindValue(15, utf8_decode($veiculo->getEstacionaResidencia()));
            $stmt->bindValue(16, utf8_decode($veiculo->getEstacionaTrabalho()));
            $stmt->bindValue(17, utf8_decode($veiculo->getEstacionaEscola()));
            $stmt->bindValue(18, utf8_decode($veiculo->getNaoPossuiEstacionamento()));
            $stmt->bindValue(19, utf8_decode($veiculo->getPeriodoManha()));
            $stmt->bindValue(20, utf8_decode($veiculo->getPeriodoTarde()));
            $stmt->bindValue(21, utf8_decode($veiculo->getPeriodoNoite()));
            $stmt->bindValue(22, utf8_decode($veiculo->getCepCirculacao()));
            $stmt->bindValue(23, utf8_decode($veiculo->getCepPernoite()));
            $stmt->bindValue(24, utf8_decode($veiculo->getQuilometragem()));
            $stmt->bindValue(25, utf8_decode($veiculo->getAdaptacaoGas()));
            $stmt->bindValue(26, utf8_decode($veiculo->getBlindagem()));
           
            $stmt->execute();
            
            $idVeiculo = $conn->lastInsertId();
            
            $conn = $conexao->fecharConexao();
            return $idVeiculo;
            
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
            return false;
        }
        
    }
    
    public function selecionarVeiculo($idVeiculo) {

        try {
            
            //Banco de dados
            $conexao = new Conexao();
            $conn = $conexao->abrirConexao();
            
            $statement = "SELECT * FROM veiculo WHERE id = $idVeiculo";
            $result = $conn->query($statement);
            
            $veiculo = new Veiculo;
            foreach ($result as $value) {
                
                $veiculo->setIdVeiculo($value['id']);
                $veiculo->setCodigoCondutor($value['id_condutor']);
                $veiculo->setCodigoProprietario($value['id_proprietario']);
                $veiculo->setCodigoModelo($value['id_modelo']);
                $veiculo->setAntiFurto($value['sistema_anti_furto']);
                $veiculo->setAnoFabricacao($value['ano_fabricacao']);
                $veiculo->setAnoModelo($value['ano_modelo']);
                $veiculo->setCombustivel($value['combustivel']);
                $veiculo->setPlaca($value['placa']);
                $veiculo->setChassi($value['chassi']);
                $veiculo->setValor($value['valor']);
                $veiculo->setFoiFinanciado($value['foi_financiado']);
                $veiculo->setFormaUtilizacao($value['forma_utilizacao']);
                $veiculo->setIdaVoltaTrabalho($value['ida_volta_trabalho']);
                $veiculo->setIdaVoltaEstudo($value['ida_volta_estudo']);
                $veiculo->setEstacionaResidencia($value['estaciona_residencia']);
                $veiculo->setEstacionaTrabalho($value['estaciona_trabalho']);
                $veiculo->setEstacionaEscola($value['estaciona_escola']);
                $veiculo->setNaoPossuiEstacionamento($value['nao_possui_estacionamento']);
                $veiculo->setPeriodoManha($value['periodo_manha']);
                $veiculo->setPeriodoTarde($value['periodo_tarde']);
                $veiculo->setPeriodoNoite($value['periodo_noite']);
                $veiculo->setCepCirculacao($value['cep_circulacao']);
                $veiculo->setCepPernoite($value['cep_pernoite']);
                $veiculo->setQuilometragem($value['quilometragem_atual']);
                $veiculo->setAdaptcaoGas($value['valor_adaptacao_gas']);
                $veiculo->setBlindagem($value['valor_blindagem']);
                $veiculo->setZeroKM($value['zero_km']);
                
            }
            
            //echo $veiculo->getAnoFabricacao();
            //break;
            $conn = $conexao->fecharConexao();
            return $veiculo;
            
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
            
    }
    
    public function editarVeiculo(Veiculo $veiculo) {
        
        try {

            //Banco de dados
            $conexao = new Conexao();
            $conn = $conexao->abrirConexao();
            
            //Codigo SQL
            $query = "
                update veiculo set sistema_anti_furto = ?, ano_fabricacao = ?, ano_modelo = ?, combustivel = ?, 
		placa = ?, chassi = ?, valor = ?, foi_financiado = ?, forma_utilizacao = ?, ida_volta_trabalho = ?, 
		ida_volta_estudo = ?, estaciona_residencia = ?, estaciona_trabalho = ?, estaciona_escola = ?,
                nao_possui_estacionamento = ?, periodo_manha = ?, periodo_tarde = ?, periodo_noite = ?,
                cep_circulacao = ?, cep_pernoite = ?, quilometragem_atual = ?, valor_adaptacao_gas = ?, valor_blindagem = ?, 
		zero_km = ? where id = ?";
            
            //converter datas
            //$data = new Utilitarios();

            //Cadastro Usuario
            $stmt = $conn->prepare($query);           
            $stmt->bindValue(1, utf8_decode($veiculo->getAntiFurto()));
            $stmt->bindValue(2, utf8_decode($veiculo->getAnoFabricacao()));
            $stmt->bindValue(3, utf8_decode($veiculo->getAnoModelo()));
            $stmt->bindValue(4, utf8_decode($veiculo->getCombustivel()));
            $stmt->bindValue(5, utf8_decode($veiculo->getPlaca()));
            $stmt->bindValue(6, utf8_decode($veiculo->getChassi()));
            $stmt->bindValue(7, utf8_decode($veiculo->getValor()));
            $stmt->bindValue(8, utf8_decode($veiculo->getFoiFinanciado()));
            $stmt->bindValue(9, utf8_decode($veiculo->getFormaUtilizacao()));
            $stmt->bindValue(10, utf8_decode($veiculo->getIdaVoltaTrabalho()));
            $stmt->bindValue(11, utf8_decode($veiculo->getIdaVoltaEstudo()));
            $stmt->bindValue(12, utf8_decode($veiculo->getEstacionaResidencia()));
            $stmt->bindValue(13, utf8_decode($veiculo->getEstacionaTrabalho()));
            $stmt->bindValue(14, utf8_decode($veiculo->getEstacionaEscola()));
            $stmt->bindValue(15, utf8_decode($veiculo->getNaoPossuiEstacionamento()));
            $stmt->bindValue(16, utf8_decode($veiculo->getPeriodoManha()));
            $stmt->bindValue(17, utf8_decode($veiculo->getPeriodoTarde()));
            $stmt->bindValue(18, utf8_decode($veiculo->getPeriodoNoite()));
            $stmt->bindValue(19, utf8_decode($veiculo->getCepCirculacao()));
            $stmt->bindValue(20, utf8_decode($veiculo->getCepPernoite()));
            $stmt->bindValue(21, utf8_decode($veiculo->getQuilometragem()));
            $stmt->bindValue(22, utf8_decode($veiculo->getAdaptacaoGas()));
            $stmt->bindValue(23, utf8_decode($veiculo->getBlindagem()));
			$stmt->bindValue(24, $veiculo->getZeroKM());
			$stmt->bindValue(25, $veiculo->getIdVeiculo());
           
            $stmt->execute();                        
            
            $conn = $conexao->fecharConexao();
            
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
            return false;
        }
        
    }
    
}

?>
